#!/bin/bash

set -eu

rm -Rf "{{cookiecutter.name}}"
rm -Rf main 
rm -f manage.py

django-admin startproject {{cookiecutter.name}} .
django-admin startapp main
cat >main/views.py <<EOF
from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello World from django main app")
EOF
cat >main/urls.py <<EOF
from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
EOF

echo "" >>{{cookiecutter.name}}/urls.py
echo "# ADDED BY METWORK/MFSERV/DJANGO PLUGIN TEMPLATE" >>{{cookiecutter.name}}/urls.py
echo "# FOR CONFIGURING main app" >>{{cookiecutter.name}}/urls.py
echo "from django.urls import re_path" >>{{cookiecutter.name}}/urls.py
echo "from django.conf.urls import include" >>{{cookiecutter.name}}/urls.py
echo "urlpatterns.append(re_path(r'^main/', include('main.urls')))" >>{{cookiecutter.name}}/urls.py
echo "urlpatterns.append(path('', include('main.urls')))" >>{{cookiecutter.name}}/urls.py

echo "" >>{{cookiecutter.name}}/urls.py
echo "# ADDED BY METWORK/MFSERV/DJANGO PLUGIN TEMPLATE" >>{{cookiecutter.name}}/urls.py
echo "# TO PROVIDE PREFIX BASED ROUTING" >>{{cookiecutter.name}}/urls.py
echo 'PREFIXES = [r"^{{cookiecutter.name}}/"]' >>{{cookiecutter.name}}/urls.py
echo "urlpatterns = [re_path(x, include(urlpatterns)) for x in PREFIXES]" >>{{cookiecutter.name}}/urls.py

cat >>{{cookiecutter.name}}/settings.py <<EOF
# ADDED BY METWORK/MFSERV/DJANGO PLUGIN TEMPLATE
# TO PROVIDE GIS LIBRARIES
import os
MFEXT_HOME = os.environ.get('MFEXT_HOME')
GDAL_LIBRARY_PATH = MFEXT_HOME + '/opt/scientific_core/lib/libgdal.so'
GEOS_LIBRARY_PATH = MFEXT_HOME + '/opt/scientific_core/lib/libgeos_c.so'
SPATIALITE_LIBRARY_PATH = MFEXT_HOME + '/opt/scientific_core/lib/mod_spatialite.so'

# TO PROVIDE MFLOG LOGGING ONLY
LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "loggers": {
        "django": {
            "propagate": True,
        },
    },
}

# TO PROVIDE PREFIX BASED ROUTING
STATIC_URL = '/{{cookiecutter.name}}/static/'
STATIC_ROOT = Path(BASE_DIR, "main/static")
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]']
INSTALLED_APPS.append('main')
EOF

python manage.py migrate
python manage.py collectstatic --no-input
